﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace draft_program
{
    //Comment Change
    
    public class ballpark
    {
        public int ballpark_id { get; set; }
        public int bp_single_left { get; set; }
        public int bp_single_right { get; set; }
        public int bp_homerun_left { get; set; }
        public int bp_homerun_right { get; set; }
    }

    public class hitter
    {
        public int hitter_id { get; set; }
        public string steal { get; set; }
        public int run { get; set; }
        public char bats { get; set; }
        public char bunt { get; set; }
        public char h_r { get; set; }
        public bool power_l { get; set; }
        public bool power_r { get; set; }
        public bool steal_asterisk { get; set; }
        public int steal_front { get; set; }
        public int steal_back { get; set; }
        public char lead_02 { get; set; }
        public char lead_03 { get; set; }
        public char lead_04 { get; set; }
        public char lead_05 { get; set; }
        public char lead_06 { get; set; }
        public char lead_07 { get; set; }
        public char lead_08 { get; set; }
        public char lead_09 { get; set; }
        public char lead_10 { get; set; }
        public char lead_11 { get; set; }
        public char lead_12 { get; set; }
        public int? c_range { get; set; }
        public int? c_error { get; set; }
        public int? _1b_range { get; set; }
        public int? _1b_error { get; set; }
        public int? _2b_range { get; set; }
        public int? _2b_error { get; set; }
        public int? _3b_range { get; set; }
        public int? _3b_error { get; set; }
        public int? ss_range { get; set; }
        public int? ss_error { get; set; }
        public int? lf_range { get; set; }
        public int? lf_error { get; set; }
        public int? cf_range { get; set; }
        public int? cf_error { get; set; }
        public int? rf_range { get; set; }
        public int? rf_error { get; set; }
        public int? of_arm { get; set; }
        public int? c_arm { get; set; }
        public int? c_pb { get; set; }
        public int? c_T_rat { get; set; }
        public string defense_string { get; set; }
    }

    public class pitcher
    {
        public int pitcher_id { get; set; }
        public char pitches { get; set; }
        public int? start_end { get; set; }
        public int? relief_end { get; set; }
        public int? closer { get; set; }
        public int hold { get; set; }
        public int range { get; set; }
        public int error { get; set; }
        public int balk { get; set; }
        public int wild_pitch { get; set; }
        public int hitting_card { get; set; }
        public string steal { get; set; }
        public int run { get; set; }
        public char bats { get; set; }
        public char bunt { get; set; }
        public char h_r { get; set; }
        public bool power_l { get; set; }
        public bool power_r { get; set; }
        public bool steal_asterisk { get; set; }
        public int steal_front { get; set; }
        public int steal_back { get; set; }
        public char lead_02 { get; set; }
        public char lead_03 { get; set; }
        public char lead_04 { get; set; }
        public char lead_05 { get; set; }
        public char lead_06 { get; set; }
        public char lead_07 { get; set; }
        public char lead_08 { get; set; }
        public char lead_09 { get; set; }
        public char lead_10 { get; set; }
        public char lead_11 { get; set; }
        public char lead_12 { get; set; }
        public int p_range { get; set; }
        public int p_error { get; set; }
    }

    public class common
    {
        public int player_id { get; set; }
        public string team { get; set; }
        public char type { get; set; }
        public string f_name { get; set; }
        public string l_name { get; set; }
    }

    public class draft
    {
        public int pick_number { get; set; }
        public int team { get; set; }
        public int round { get; set; }
        public int player { get; set; }
    }

    class Program
    {

        //Color-Shading Methods
        static public void background_color_change(string color)
        {
            switch (color)
            {
                case "Black":
                    Console.BackgroundColor = ConsoleColor.Black;
                    break;

                case "Dark Blue":
                    Console.BackgroundColor = ConsoleColor.DarkBlue;
                    break;

                case "Dark Green":
                    Console.BackgroundColor = ConsoleColor.DarkGreen;
                    break;

                case "Dark Cyan":
                    Console.BackgroundColor = ConsoleColor.DarkCyan;
                    break;

                case "Dark Red":
                    Console.BackgroundColor = ConsoleColor.DarkRed;
                    break;

                case "Dark Magenta":
                    Console.BackgroundColor = ConsoleColor.DarkMagenta;
                    break;

                case "Dark Yellow":
                    Console.BackgroundColor = ConsoleColor.DarkYellow;
                    break;

                case "Dark Gray":
                    Console.BackgroundColor = ConsoleColor.DarkGray;
                    break;

                case "Blue":
                    Console.BackgroundColor = ConsoleColor.Blue;
                    break;

                case "Green":
                    Console.BackgroundColor = ConsoleColor.Green;
                    break;

                case "Cyan":
                    Console.BackgroundColor = ConsoleColor.Cyan;
                    break;

                case "Red":
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;

                case "Magenta":
                    Console.BackgroundColor = ConsoleColor.Magenta;
                    break;

                case "Yellow":
                    Console.BackgroundColor = ConsoleColor.Yellow;
                    break;

                case "Gray":
                    Console.BackgroundColor = ConsoleColor.Gray;
                    break;

                case "White":
                    Console.BackgroundColor = ConsoleColor.White;
                    break;

                default:
                    Console.WriteLine("THERE IS A MAJOR UNKNOWN COLOR ERROR");
                    break;

            }

        }

        static public void foreground_color_change(string color)
        {
            switch (color)
            {
                case "Black":
                    Console.ForegroundColor = ConsoleColor.Black;
                    break;

                case "Dark Blue":
                    Console.ForegroundColor = ConsoleColor.DarkBlue;
                    break;

                case "Dark Green":
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    break;

                case "Dark Cyan":
                    Console.ForegroundColor = ConsoleColor.DarkCyan;
                    break;

                case "Dark Red":
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    break;

                case "Dark Magenta":
                    Console.ForegroundColor = ConsoleColor.DarkMagenta;
                    break;

                case "Dark Yellow":
                    Console.ForegroundColor = ConsoleColor.DarkYellow;
                    break;

                case "Dark Gray":
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                    break;

                case "Blue":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    break;

                case "Green":
                    Console.ForegroundColor = ConsoleColor.Green;
                    break;

                case "Cyan":
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    break;

                case "Red":
                    Console.ForegroundColor = ConsoleColor.Red;
                    break;

                case "Magenta":
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    break;

                case "Yellow":
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    break;

                case "Gray":
                    Console.ForegroundColor = ConsoleColor.Gray;
                    break;

                case "White":
                    Console.ForegroundColor = ConsoleColor.White;
                    break;

                default:
                    break;

            }

        }

        static public void default_color()
        {
            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;
        }

        static public void highlight()
        {
            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.White;
        }

        static public void display_color(string player_position)
        {
            switch (player_position)
            {
                case "c":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "1b":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "2b":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "3b":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "ss":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "lf":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "cf":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "rf":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "sp-r":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "sr-r":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "rp-r":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "sp-l":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "sr-l":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "rp-l":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
                case "bp":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Red;
                    break;
            }
        }


        //Intro and help
        static public void introduction()
        {
            //##jc these first two lines should be able to be adjusted to account for different fonts and screan resolutitions.
            Console.BufferWidth = 222;
            Console.SetWindowSize(Console.BufferWidth, 52);
            Console.WriteLine("Welcome to the Jasper Cattin / Mike Short Draft Program");
            Console.WriteLine();
            Console.WriteLine("There is currently no in program help, if you need help it is recomended");
            Console.WriteLine("that you print out the instructions, it is also reccomended that you have a listing");
            Console.WriteLine("of both all the players with their number and all of the ballparks as there is currently");
            Console.WriteLine("no in program listing for either of these things.");
            Console.WriteLine();

        }

        static public void set_number_of_teams(out int set_num_teams)
        {
            int num_teams = 0;
            string string_teams;
            bool teams_flag = true;
            while (teams_flag == true)
            {
                Console.Write("Please Enter the number of teams in the draft: ");
                string_teams = Console.ReadLine();
                try
                {
                    num_teams = Convert.ToInt32(string_teams);
                    if (num_teams >= 8 && num_teams <= 14)
                    {
                        Console.WriteLine("Thank you, the number of teams in the the draft will be {0}", num_teams);
                        teams_flag = false;
                    }
                    else
                    {
                        Console.WriteLine("Please re-enter the number of teams as your entry makes an illegal draft");
                        Console.ReadKey();
                    }

                }
                catch (FormatException)
                {
                    Console.WriteLine("Illegal Input, Input must be a number between 8 and 14");
                    Console.ReadKey();
                }
                catch (OverflowException)
                {
                    Console.WriteLine("Illegal Input, Input must be a number between 8 and 14");
                    Console.ReadKey();
                }
            }
            set_num_teams = num_teams;
        }

        static public void set_team_names(int num_teams, ref string[] team_names)
        {
            string team01name = "Team #1";
            string team02name = "Team #2";
            string team03name = "Team #3";
            string team04name = "Team #4";
            string team05name = "Team #5";
            string team06name = "Team #6";
            string team07name = "Team #7";
            string team08name = "Team #8";
            string team09name = "Team #9";
            string team10name = "Team #10";
            string team11name = "Team #11";
            string team12name = "Team #12";
            string team13name = "Team #13";
            string team14name = "Team #14";

            bool start_draft = false;
            string change_team_name_string;
            int change_team_name_int;
            while (start_draft == false)
            {
                switch (num_teams)
                {
                    case 8:
                        Console.Clear();
                        Console.WriteLine("Change Team Names");
                        Console.WriteLine();
                        Console.WriteLine("Team #1: {0}", team01name);
                        Console.WriteLine("Team #2: {0}", team02name);
                        Console.WriteLine("Team #3: {0}", team03name);
                        Console.WriteLine("Team #4: {0}", team04name);
                        Console.WriteLine("Team #5: {0}", team05name);
                        Console.WriteLine("Team #6: {0}", team06name);
                        Console.WriteLine("Team #7: {0}", team07name);
                        Console.WriteLine("Team #8: {0}", team08name);
                        Console.WriteLine();
                        Console.Write("Type Number of team name to change, Type 99 To Go To Next Step: ");
                        change_team_name_string = Console.ReadLine();
                        try
                        {
                            change_team_name_int = Convert.ToInt32(change_team_name_string);
                            switch (change_team_name_int)
                            {
                                case 1:
                                    Console.Write("Enter team name: ");
                                    team01name = Console.ReadLine();
                                    break;
                                case 2:
                                    Console.Write("Enter team name: ");
                                    team02name = Console.ReadLine();
                                    break;
                                case 3:
                                    Console.Write("Enter team name: ");
                                    team03name = Console.ReadLine();
                                    break;
                                case 4:
                                    Console.Write("Enter team name: ");
                                    team04name = Console.ReadLine();
                                    break;
                                case 5:
                                    Console.Write("Enter team name: ");
                                    team05name = Console.ReadLine();
                                    break;
                                case 6:
                                    Console.Write("Enter team name: ");
                                    team06name = Console.ReadLine();
                                    break;
                                case 7:
                                    Console.Write("Enter team name: ");
                                    team07name = Console.ReadLine();
                                    break;
                                case 8:
                                    Console.Write("Enter team name: ");
                                    team08name = Console.ReadLine();
                                    break;
                                case 99:
                                    start_draft = true;
                                    break;
                                default:
                                    Console.WriteLine("Invalid Input");
                                    break;
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        break;
                    case 9:
                        Console.Clear();
                        Console.WriteLine("Change Team Names");
                        Console.WriteLine();
                        Console.WriteLine("Team #1: {0}", team01name);
                        Console.WriteLine("Team #2: {0}", team02name);
                        Console.WriteLine("Team #3: {0}", team03name);
                        Console.WriteLine("Team #4: {0}", team04name);
                        Console.WriteLine("Team #5: {0}", team05name);
                        Console.WriteLine("Team #6: {0}", team06name);
                        Console.WriteLine("Team #7: {0}", team07name);
                        Console.WriteLine("Team #8: {0}", team08name);
                        Console.WriteLine("Team #9: {0}", team09name);
                        Console.WriteLine();
                        Console.Write("Type Number of team name to change, Type 99 To Go To Next Step: ");
                        change_team_name_string = Console.ReadLine();
                        try
                        {
                            change_team_name_int = Convert.ToInt32(change_team_name_string);
                            switch (change_team_name_int)
                            {
                                case 1:
                                    Console.Write("Enter team name: ");
                                    team01name = Console.ReadLine();
                                    break;
                                case 2:
                                    Console.Write("Enter team name: ");
                                    team02name = Console.ReadLine();
                                    break;
                                case 3:
                                    Console.Write("Enter team name: ");
                                    team03name = Console.ReadLine();
                                    break;
                                case 4:
                                    Console.Write("Enter team name: ");
                                    team04name = Console.ReadLine();
                                    break;
                                case 5:
                                    Console.Write("Enter team name: ");
                                    team05name = Console.ReadLine();
                                    break;
                                case 6:
                                    Console.Write("Enter team name: ");
                                    team06name = Console.ReadLine();
                                    break;
                                case 7:
                                    Console.Write("Enter team name: ");
                                    team07name = Console.ReadLine();
                                    break;
                                case 8:
                                    Console.Write("Enter team name: ");
                                    team08name = Console.ReadLine();
                                    break;
                                case 9:
                                    Console.Write("Enter team name: ");
                                    team09name = Console.ReadLine();
                                    break;
                                case 99:
                                    start_draft = true;
                                    break;
                                default:
                                    Console.WriteLine("Invalid Input");
                                    break;
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        break;
                    case 10:
                        Console.Clear();
                        Console.WriteLine("Change Team Names");
                        Console.WriteLine();
                        Console.WriteLine("Team  #1: {0}", team01name);
                        Console.WriteLine("Team  #2: {0}", team02name);
                        Console.WriteLine("Team  #3: {0}", team03name);
                        Console.WriteLine("Team  #4: {0}", team04name);
                        Console.WriteLine("Team  #5: {0}", team05name);
                        Console.WriteLine("Team  #6: {0}", team06name);
                        Console.WriteLine("Team  #7: {0}", team07name);
                        Console.WriteLine("Team  #8: {0}", team08name);
                        Console.WriteLine("Team  #9: {0}", team09name);
                        Console.WriteLine("Team #10: {0}", team10name);
                        Console.WriteLine();
                        Console.Write("Type Number of team name to change, Type 99 To Go To Next Step: ");
                        change_team_name_string = Console.ReadLine();
                        try
                        {
                            change_team_name_int = Convert.ToInt32(change_team_name_string);
                            switch (change_team_name_int)
                            {
                                case 1:
                                    Console.Write("Enter team name: ");
                                    team01name = Console.ReadLine();
                                    break;
                                case 2:
                                    Console.Write("Enter team name: ");
                                    team02name = Console.ReadLine();
                                    break;
                                case 3:
                                    Console.Write("Enter team name: ");
                                    team03name = Console.ReadLine();
                                    break;
                                case 4:
                                    Console.Write("Enter team name: ");
                                    team04name = Console.ReadLine();
                                    break;
                                case 5:
                                    Console.Write("Enter team name: ");
                                    team05name = Console.ReadLine();
                                    break;
                                case 6:
                                    Console.Write("Enter team name: ");
                                    team06name = Console.ReadLine();
                                    break;
                                case 7:
                                    Console.Write("Enter team name: ");
                                    team07name = Console.ReadLine();
                                    break;
                                case 8:
                                    Console.Write("Enter team name: ");
                                    team08name = Console.ReadLine();
                                    break;
                                case 9:
                                    Console.Write("Enter team name: ");
                                    team09name = Console.ReadLine();
                                    break;
                                case 10:
                                    Console.Write("Enter team name: ");
                                    team10name = Console.ReadLine();
                                    break;
                                case 99:
                                    start_draft = true;
                                    break;
                                default:
                                    Console.WriteLine("Invalid Input");
                                    break;
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        break;
                    case 11:
                        Console.Clear();
                        Console.WriteLine("Change Team Names");
                        Console.WriteLine();
                        Console.WriteLine("Team  #1: {0}", team01name);
                        Console.WriteLine("Team  #2: {0}", team02name);
                        Console.WriteLine("Team  #3: {0}", team03name);
                        Console.WriteLine("Team  #4: {0}", team04name);
                        Console.WriteLine("Team  #5: {0}", team05name);
                        Console.WriteLine("Team  #6: {0}", team06name);
                        Console.WriteLine("Team  #7: {0}", team07name);
                        Console.WriteLine("Team  #8: {0}", team08name);
                        Console.WriteLine("Team  #9: {0}", team09name);
                        Console.WriteLine("Team #10: {0}", team10name);
                        Console.WriteLine("Team #11: {0}", team11name);
                        Console.WriteLine();
                        Console.Write("Type Number of team name to change, Type 99 To Go To Next Step: ");
                        change_team_name_string = Console.ReadLine();
                        try
                        {
                            change_team_name_int = Convert.ToInt32(change_team_name_string);
                            switch (change_team_name_int)
                            {
                                case 1:
                                    Console.Write("Enter team name: ");
                                    team01name = Console.ReadLine();
                                    break;
                                case 2:
                                    Console.Write("Enter team name: ");
                                    team02name = Console.ReadLine();
                                    break;
                                case 3:
                                    Console.Write("Enter team name: ");
                                    team03name = Console.ReadLine();
                                    break;
                                case 4:
                                    Console.Write("Enter team name: ");
                                    team04name = Console.ReadLine();
                                    break;
                                case 5:
                                    Console.Write("Enter team name: ");
                                    team05name = Console.ReadLine();
                                    break;
                                case 6:
                                    Console.Write("Enter team name: ");
                                    team06name = Console.ReadLine();
                                    break;
                                case 7:
                                    Console.Write("Enter team name: ");
                                    team07name = Console.ReadLine();
                                    break;
                                case 8:
                                    Console.Write("Enter team name: ");
                                    team08name = Console.ReadLine();
                                    break;
                                case 9:
                                    Console.Write("Enter team name: ");
                                    team09name = Console.ReadLine();
                                    break;
                                case 10:
                                    Console.Write("Enter team name: ");
                                    team10name = Console.ReadLine();
                                    break;
                                case 11:
                                    Console.Write("Enter team name: ");
                                    team11name = Console.ReadLine();
                                    break;
                                case 99:
                                    start_draft = true;
                                    break;
                                default:
                                    Console.WriteLine("Invalid Input");
                                    break;
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        break;
                    case 12:
                        Console.Clear();
                        Console.WriteLine("Change Team Names");
                        Console.WriteLine();
                        Console.WriteLine("Team  #1: {0}", team01name);
                        Console.WriteLine("Team  #2: {0}", team02name);
                        Console.WriteLine("Team  #3: {0}", team03name);
                        Console.WriteLine("Team  #4: {0}", team04name);
                        Console.WriteLine("Team  #5: {0}", team05name);
                        Console.WriteLine("Team  #6: {0}", team06name);
                        Console.WriteLine("Team  #7: {0}", team07name);
                        Console.WriteLine("Team  #8: {0}", team08name);
                        Console.WriteLine("Team  #9: {0}", team09name);
                        Console.WriteLine("Team #10: {0}", team10name);
                        Console.WriteLine("Team #11: {0}", team11name);
                        Console.WriteLine("Team #12: {0}", team12name);
                        Console.WriteLine();
                        Console.Write("Type Number of team name to change, Type 99 To Go To Next Step: ");
                        change_team_name_string = Console.ReadLine();
                        try
                        {
                            change_team_name_int = Convert.ToInt32(change_team_name_string);
                            switch (change_team_name_int)
                            {
                                case 1:
                                    Console.Write("Enter team name: ");
                                    team01name = Console.ReadLine();
                                    break;
                                case 2:
                                    Console.Write("Enter team name: ");
                                    team02name = Console.ReadLine();
                                    break;
                                case 3:
                                    Console.Write("Enter team name: ");
                                    team03name = Console.ReadLine();
                                    break;
                                case 4:
                                    Console.Write("Enter team name: ");
                                    team04name = Console.ReadLine();
                                    break;
                                case 5:
                                    Console.Write("Enter team name: ");
                                    team05name = Console.ReadLine();
                                    break;
                                case 6:
                                    Console.Write("Enter team name: ");
                                    team06name = Console.ReadLine();
                                    break;
                                case 7:
                                    Console.Write("Enter team name: ");
                                    team07name = Console.ReadLine();
                                    break;
                                case 8:
                                    Console.Write("Enter team name: ");
                                    team08name = Console.ReadLine();
                                    break;
                                case 9:
                                    Console.Write("Enter team name: ");
                                    team09name = Console.ReadLine();
                                    break;
                                case 10:
                                    Console.Write("Enter team name: ");
                                    team10name = Console.ReadLine();
                                    break;
                                case 11:
                                    Console.Write("Enter team name: ");
                                    team11name = Console.ReadLine();
                                    break;
                                case 12:
                                    Console.Write("Enter team name: ");
                                    team12name = Console.ReadLine();
                                    break;
                                case 99:
                                    start_draft = true;
                                    break;
                                default:
                                    Console.WriteLine("Invalid Input");
                                    break;
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        break;
                    case 13:
                        Console.Clear();
                        Console.WriteLine("Change Team Names");
                        Console.WriteLine();
                        Console.WriteLine("Team  #1: {0}", team01name);
                        Console.WriteLine("Team  #2: {0}", team02name);
                        Console.WriteLine("Team  #3: {0}", team03name);
                        Console.WriteLine("Team  #4: {0}", team04name);
                        Console.WriteLine("Team  #5: {0}", team05name);
                        Console.WriteLine("Team  #6: {0}", team06name);
                        Console.WriteLine("Team  #7: {0}", team07name);
                        Console.WriteLine("Team  #8: {0}", team08name);
                        Console.WriteLine("Team  #9: {0}", team09name);
                        Console.WriteLine("Team #10: {0}", team10name);
                        Console.WriteLine("Team #11: {0}", team11name);
                        Console.WriteLine("Team #12: {0}", team12name);
                        Console.WriteLine("Team #13: {0}", team13name);
                        Console.WriteLine();
                        Console.Write("Type Number of team name to change, Type 99 To Go To Next Step: ");
                        change_team_name_string = Console.ReadLine();
                        try
                        {
                            change_team_name_int = Convert.ToInt32(change_team_name_string);
                            switch (change_team_name_int)
                            {
                                case 1:
                                    Console.Write("Enter team name: ");
                                    team01name = Console.ReadLine();
                                    break;
                                case 2:
                                    Console.Write("Enter team name: ");
                                    team02name = Console.ReadLine();
                                    break;
                                case 3:
                                    Console.Write("Enter team name: ");
                                    team03name = Console.ReadLine();
                                    break;
                                case 4:
                                    Console.Write("Enter team name: ");
                                    team04name = Console.ReadLine();
                                    break;
                                case 5:
                                    Console.Write("Enter team name: ");
                                    team05name = Console.ReadLine();
                                    break;
                                case 6:
                                    Console.Write("Enter team name: ");
                                    team06name = Console.ReadLine();
                                    break;
                                case 7:
                                    Console.Write("Enter team name: ");
                                    team07name = Console.ReadLine();
                                    break;
                                case 8:
                                    Console.Write("Enter team name: ");
                                    team08name = Console.ReadLine();
                                    break;
                                case 9:
                                    Console.Write("Enter team name: ");
                                    team09name = Console.ReadLine();
                                    break;
                                case 10:
                                    Console.Write("Enter team name: ");
                                    team10name = Console.ReadLine();
                                    break;
                                case 11:
                                    Console.Write("Enter team name: ");
                                    team11name = Console.ReadLine();
                                    break;
                                case 12:
                                    Console.Write("Enter team name: ");
                                    team12name = Console.ReadLine();
                                    break;
                                case 13:
                                    Console.Write("Enter team name: ");
                                    team13name = Console.ReadLine();
                                    break;
                                case 99:
                                    start_draft = true;
                                    break;
                                default:
                                    Console.WriteLine("Invalid Input");
                                    break;
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        break;
                    case 14:
                        Console.Clear();
                        Console.WriteLine("Change Team Names");
                        Console.WriteLine();
                        Console.WriteLine("Team  #1: {0}", team01name);
                        Console.WriteLine("Team  #2: {0}", team02name);
                        Console.WriteLine("Team  #3: {0}", team03name);
                        Console.WriteLine("Team  #4: {0}", team04name);
                        Console.WriteLine("Team  #5: {0}", team05name);
                        Console.WriteLine("Team  #6: {0}", team06name);
                        Console.WriteLine("Team  #7: {0}", team07name);
                        Console.WriteLine("Team  #8: {0}", team08name);
                        Console.WriteLine("Team  #9: {0}", team09name);
                        Console.WriteLine("Team #10: {0}", team10name);
                        Console.WriteLine("Team #11: {0}", team11name);
                        Console.WriteLine("Team #12: {0}", team12name);
                        Console.WriteLine("Team #13: {0}", team13name);
                        Console.WriteLine("Team #14: {0}", team14name);
                        Console.WriteLine();
                        Console.Write("Type Number of team name to change, Type 99 To Go To Next Step: ");
                        change_team_name_string = Console.ReadLine();
                        try
                        {
                            change_team_name_int = Convert.ToInt32(change_team_name_string);
                            switch (change_team_name_int)
                            {
                                case 1:
                                    Console.Write("Enter team name: ");
                                    team01name = Console.ReadLine();
                                    break;
                                case 2:
                                    Console.Write("Enter team name: ");
                                    team02name = Console.ReadLine();
                                    break;
                                case 3:
                                    Console.Write("Enter team name: ");
                                    team03name = Console.ReadLine();
                                    break;
                                case 4:
                                    Console.Write("Enter team name: ");
                                    team04name = Console.ReadLine();
                                    break;
                                case 5:
                                    Console.Write("Enter team name: ");
                                    team05name = Console.ReadLine();
                                    break;
                                case 6:
                                    Console.Write("Enter team name: ");
                                    team06name = Console.ReadLine();
                                    break;
                                case 7:
                                    Console.Write("Enter team name: ");
                                    team07name = Console.ReadLine();
                                    break;
                                case 8:
                                    Console.Write("Enter team name: ");
                                    team08name = Console.ReadLine();
                                    break;
                                case 9:
                                    Console.Write("Enter team name: ");
                                    team09name = Console.ReadLine();
                                    break;
                                case 10:
                                    Console.Write("Enter team name: ");
                                    team10name = Console.ReadLine();
                                    break;
                                case 11:
                                    Console.Write("Enter team name: ");
                                    team11name = Console.ReadLine();
                                    break;
                                case 12:
                                    Console.Write("Enter team name: ");
                                    team12name = Console.ReadLine();
                                    break;
                                case 13:
                                    Console.Write("Enter team name: ");
                                    team13name = Console.ReadLine();
                                    break;
                                case 14:
                                    Console.Write("Enter team name: ");
                                    team14name = Console.ReadLine();
                                    break;
                                case 99:
                                    start_draft = true;
                                    break;
                                default:
                                    Console.WriteLine("Invalid Input");
                                    break;
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Illegal Input, Input must be a number between 1 and {0}", num_teams);
                            Console.ReadKey();
                        }
                        break;
                    default:
                        break;
                }
            }
            team_names[0] = team01name;
            team_names[1] = team02name;
            team_names[2] = team03name;
            team_names[3] = team04name;
            team_names[4] = team05name;
            team_names[5] = team06name;
            team_names[6] = team07name;
            team_names[7] = team08name;
            team_names[8] = team09name;
            team_names[9] = team10name;
            team_names[10] = team11name;
            team_names[11] = team12name;
            team_names[12] = team13name;
            team_names[13] = team14name;
        }

        static public void set_drafters_own_team(out int set_my_team, int num_teams)
        {
            int my_team = 0;
            bool my_team_flag = true;
            while (my_team_flag == true)
            {
                Console.Write("For purposes of reccomendation and ratings what team will you be drafting: ");
                string my_team_str = Console.ReadLine();
                try
                {
                    my_team = Convert.ToInt32(my_team_str);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Illegal Input, Input must be a valid team number");
                    Console.ReadKey();
                }
                catch (OverflowException)
                {
                    Console.WriteLine("Illegal Input, Input must be a valid team number");
                    Console.ReadKey();
                }
                finally
                {
                    if (my_team > 0 && my_team <= num_teams)
                    {
                        my_team_flag = false;
                    }
                    else
                    {
                        Console.WriteLine("Illegal Input, Input must be a valid team number");
                        Console.ReadKey();
                    }
                }
            }
            set_my_team = my_team;
        }

        static public void set_display_names(ref string[] team_display, string[] team_names, int num_teams)
        {

            int default_width = define_default_width(num_teams);

            for (int i = 0; i < 14; i++)
            {
                try
                {
                    team_display[i] = team_names[i].Remove(default_width);
                }
                catch (ArgumentOutOfRangeException)
                {
                    team_display[i] = team_names[i];
                }
            }
        }

        static public void help()
        {
            if (System.IO.File.Exists("help.txt"))
            {
                string[] raw_help =
                System.IO.File.ReadAllLines("help.txt");
                foreach (string line in raw_help)
                {
                    Console.WriteLine(line);
                }
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine("Help file could not be found");
            }
        }


        /*Here are all the box and block drawing charachters
U+250x 	─ 	━ 	│ 	┃ 	┄ 	┅ 	┆ 	┇ 	┈ 	┉ 	┊ 	┋ 	┌ 	┍ 	┎ 	┏
U+251x 	┐ 	┑ 	┒ 	┓ 	└ 	┕ 	┖ 	┗ 	┘ 	┙ 	┚ 	┛ 	├ 	┝ 	┞ 	┟
U+252x 	┠ 	┡ 	┢ 	┣ 	┤ 	┥ 	┦ 	┧ 	┨ 	┩ 	┪ 	┫ 	┬ 	┭ 	┮ 	┯
U+253x 	┰ 	┱ 	┲ 	┳ 	┴ 	┵ 	┶ 	┷ 	┸ 	┹ 	┺ 	┻ 	┼ 	┽ 	┾ 	┿
U+254x 	╀ 	╁ 	╂ 	╃ 	╄ 	╅ 	╆ 	╇ 	╈ 	╉ 	╊ 	╋ 	╌ 	╍ 	╎ 	╏
U+255x 	═ 	║ 	╒ 	╓ 	╔ 	╕ 	╖ 	╗ 	╘ 	╙ 	╚ 	╛ 	╜ 	╝ 	╞ 	╟
U+256x 	╠ 	╡ 	╢ 	╣ 	╤ 	╥ 	╦ 	╧ 	╨ 	╩ 	╪ 	╫ 	╬ 	╭ 	╮ 	╯
U+257x 	╰ 	╱ 	╲ 	╳ 	╴ 	╵ 	╶ 	╷ 	╸ 	╹ 	╺ 	╻ 	╼ 	╽ 	╾ 	╿ 

U+258x 	▀ 	▁ 	▂ 	▃ 	▄ 	▅ 	▆ 	▇ 	█ 	▉ 	▊ 	▋ 	▌ 	▍ 	▎ 	▏
U+259x 	▐ 	░ 	▒ 	▓ 	▔ 	▕ 	▖ 	▗ 	▘ 	▙ 	▚ 	▛ 	▜ 	▝ 	▞ 	▟
        */


        //Header and footer formatting Methods
        static public void draft_teamnames_header(int num_teams, string[] team_names)
        {
            switch (num_teams)
            {
                case 8:
                    Console.WriteLine("┌─────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬─────┐");
                    Console.WriteLine("│     │{0,15}│{1,15}│{2,15}│{3,15}│{4,15}│{5,15}│{6,15}│{7,15}│     │", team_names);
                    break;
                case 9:
                    Console.WriteLine("┌─────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬─────┐");
                    Console.WriteLine("│     │{0,15}│{1,15}│{2,15}│{3,15}│{4,15}│{5,15}│{6,15}│{7,15}│{8,15}│     │", team_names);
                    break;
                case 10:
                    Console.WriteLine("┌─────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬─────┐");
                    Console.WriteLine("│     │{0,15}│{1,15}│{2,15}│{3,15}│{4,15}│{5,15}│{6,15}│{7,15}│{8,15}│{9,15}│     │", team_names);
                    break;
                case 11:
                    Console.WriteLine("┌─────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬─────┐");
                    Console.WriteLine("│     │{0,15}│{1,15}│{2,15}│{3,15}│{4,15}│{5,15}│{6,15}│{7,15}│{8,15}│{9,15}│{10,15}│     │", team_names);
                    break;
                case 12:
                    Console.WriteLine("┌─────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬─────┐");
                    Console.WriteLine("│     │{0,15}│{1,15}│{2,15}│{3,15}│{4,15}│{5,15}│{6,15}│{7,15}│{8,15}│{9,15}│{10,15}│{11,15}│     │", team_names);
                    break;
                case 13:
                    Console.WriteLine("┌─────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬───────────────┬──────────────┬──────────────┬──────────────┬─────┐");
                    Console.WriteLine("│     │{0,14}│{1,14}│{2,14}│{3,14}│{4,14}│{5,14}│{6,14}│{7,14}│{8,14}│{9,14}│{10,14}│{11,14}│{12,14}│     │", team_names);
                    break;
                case 14:
                    Console.WriteLine("┌─────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────┐");
                    Console.WriteLine("│     │{0,13}│{1,13}│{2,13}│{3,13}│{4,13}│{5,13}│{6,13}│{7,13}│{8,13}│{9,13}│{10,13}│{11,13}│{12,13}│{13,13}│     │", team_names);
                    break;

            }

        }

        static public void draft_line_spacer(int num_teams)
        {
            switch (num_teams)
            {
                case 8:
                    Console.WriteLine("├─────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼─────┤");
                    break;

                case 9:
                    Console.WriteLine("├─────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼─────┤");
                    break;

                case 10:
                    Console.WriteLine("├─────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼─────┤");
                    break;

                case 11:
                    Console.WriteLine("├─────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼─────┤");
                    break;

                case 12:
                    Console.WriteLine("├─────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼───────────────┼─────┤");
                    break;

                case 13:
                    Console.WriteLine("├─────┼──────────────┼──────────────┼──────────────┼──────────────┼──────────────┼──────────────┼──────────────┼──────────────┼──────────────┼───────────────┼──────────────┼──────────────┼──────────────┼─────┤");
                    break;

                case 14:
                    Console.WriteLine("├─────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────┤");
                    break;

                default:
                    Console.WriteLine("END PROGRAM NOW, MAJOR ERROR");
                    Console.ReadKey();
                    break;
            }
        }

        static public void draft_footer(int num_teams)
        {
            switch (num_teams)
            {
                case 8:
                    Console.WriteLine("└─────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴─────┘");
                    break;

                case 9:
                    Console.WriteLine("└─────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴─────┘");
                    break;

                case 10:
                    Console.WriteLine("└─────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴─────┘");
                    break;

                case 11:
                    Console.WriteLine("└─────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴─────┘");
                    break;

                case 12:
                    Console.WriteLine("└─────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴─────┘");
                    break;

                case 13:
                    Console.WriteLine("└─────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴───────────────┴──────────────┴──────────────┴──────────────┴─────┘");
                    break;

                case 14:
                    Console.WriteLine("└─────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────┘");
                    break;

                default:
                    Console.WriteLine("END PROGRAM NOW, MAJOR ERROR");
                    Console.ReadKey();
                    break;
            }
        }

        //Draft formatting Methods
        static public int define_default_width(int num_teams)
        {
            if (num_teams < 13)
            {
                return 15;
            }
            else if (num_teams == 13)
            {
                return 14;
            }
            else if (num_teams == 14)
            {
                return 13;
            }
            else
            {
                return 15;
            }

        }

        static public void display_current_draft(List<draft> draft, List<common> common, int num_teams, string[] team_names)//Need to finish displaying
        {
            int round_counter = 1;
            int pick = 1;
            int pick_in_round_counter;
            int current_round = ((draft.Count - 1) / num_teams) + 1;
            string name;
            draft_teamnames_header(num_teams, team_names);
            draft_line_spacer(num_teams);
            while (round_counter <= current_round)
            {
                pick_in_round_counter = 1;
                Console.Write("│ {0,3} │", round_counter);
                while (pick_in_round_counter <= num_teams)
                {
                    try
                    {
                        common display = common.Find(delegate(common com)
                        {
                            return com.player_id == draft[pick - 1].player;
                        });
                        if (display.type == 'B')
                        {
                            name = display.l_name;
                        }
                        else
                        {
                            name = display.l_name + ", " + display.f_name;
                        }
                        //Display names at the correct width
                        switch (num_teams)
                        {
                            case 8:
                            case 9:
                            case 10:
                            case 11:
                            case 12:
                                if (name.Length > 15)
                                {
                                    name = name.Remove(15);
                                }
                                break;
                            case 13:
                                if (name.Length > 14)
                                {
                                    name = name.Remove(14);
                                }
                                break;
                            case 14:
                                if (name.Length > 13)
                                {
                                    name = name.Remove(13);
                                }
                                break;
                        }
                    }
                    catch (Exception)
                    {
                        name = "";
                    }
                    //Similar to above giving the correct width to display names.
                    switch (num_teams)
                    {
                        case 8:
                        case 9:
                        case 10:
                        case 11:
                        case 12:
                            Console.Write("{0,-15}│", name);
                            break;
                        case 13:
                            Console.Write("{0,-14}│", name);
                            break;
                        case 14:
                            Console.Write("{0,-13}│", name);
                            break;
                    }
                    pick_in_round_counter++;
                    if ((round_counter % 2) == 1)
                    {
                        pick++;
                    }
                    else
                    {
                        pick--;
                    }
                }
                Console.WriteLine(" {0,3} │", round_counter);
                round_counter++;
                if ((round_counter % 2) == 0)
                {
                    pick = pick + num_teams - 1;
                }
                else
                {
                    pick = pick + num_teams + 1;
                }
            }
            
            draft_footer(num_teams);
        }

        static public void position_display(int num_teams)
        {
            switch (num_teams)
            {
                case 14:
                    //Line 0
                    Console.Write(" BP ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" BP ");
                    draft_line_spacer(num_teams);
                    //Line 1
                    Console.Write("  c ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("  c ");
                    //Line 2
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 3
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    draft_line_spacer(num_teams);
                    //Line 4
                    Console.Write(" 1b ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" 1b ");
                    //Line 5
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 6
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 7
                    Console.Write(" 2b ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" 2b ");
                    //Line 8
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 9
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 10
                    Console.Write(" 3b ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" 3b ");
                    //Line 11
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 12
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 13
                    Console.Write(" ss ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" ss ");
                    //Line 14
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 15
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    draft_line_spacer(num_teams);
                    //Line 16
                    Console.Write(" lf ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" lf ");
                    //Line 17
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 18
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 19
                    Console.Write(" cf ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" cf ");
                    //Line 20
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 21
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 22
                    Console.Write(" rf ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine(" rf ");
                    //Line 23
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 24
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    draft_line_spacer(num_teams);
                    draft_line_spacer(num_teams);
                    //Line 25
                    Console.Write("SP-1");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("SP-1");
                    //Line 26
                    Console.Write("SP-2");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("SP-2");
                    //Line 27
                    Console.Write("SP-3");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("SP-3");
                    //Line 28
                    Console.Write("SP-4");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("SP-4");
                    //Line 29
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 30
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    draft_line_spacer(num_teams);
                    //Line 31
                    Console.Write("r-rp");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("r-rp");
                    //Line 32
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 33
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 34
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 35
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 36
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    draft_line_spacer(num_teams);
                    //Line 37
                    Console.Write("L-rp");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("L-rp");
                    //Line 38
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 39
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    //Line 40
                    Console.Write("    ");
                    Console.Write("|{0,13}|{1,13}|{2,13}|{3,13}|{4,13}|{5,13}|{6,13}|{7,13}|{8,13}|{9,13}|{10,13}|{11,13}|{12,13}|{13,13}|"
                        , "", "", "", "", "", "", "", "", "", "", "", "", "", "");
                    Console.WriteLine("    ");
                    draft_line_spacer(num_teams);
                    Console.WriteLine();
                    break;
                default:
                    break;
            }
        }


        //Display formatting Methods
        static public void display_hitter_header(string table_name, string title_background_color)
        {
            string[] batter_header_array1 = { "             vs Left", "            vs. Right", "            Defense" };
            string[] batter_header_array2 = { "ID", "Player", "APS", "rtg", "h", "ob", "tb", "hr ", "bp", "cl", "gbA", "rtg", "h", "ob", "tb", "hr ", "bp", "cl", "gbA", "c", "1b", "2b", "3b", "ss", "lf", "cf", "rf" };
            Console.WriteLine("┌─────────────────────────────────╥─────────────────────────────────╥─────────────────────────────────╥───────────────────────────────┐");
            Console.Write("│");
            Console.ForegroundColor = ConsoleColor.White;
            background_color_change(title_background_color);
            Console.Write(" {0,-32}", table_name);
            default_color();
            Console.WriteLine("║{0,-33}║{1,-33}║{2,-31}│", batter_header_array1);
            Console.WriteLine("├──┬───┬──────────────────────┬───╫───┬───┬───┬───┬─────┬───┬───┬───╫───┬───┬───┬───┬─────┬───┬───┬───╫───┬───┬───┬───┬───┬───┬───┬───┤");
            Console.WriteLine("│Rk│{0,3}│{1,-22}│{2,3}║{3,3}│{4,3}│{5,3}│{6,3}│{7,5}│{8,3}│{9,3}│{10,3}║{11,3}│{12,3}│{13,3}│{14,3}│{15,5}│{16,3}│{17,3}│{18,3}║{19,3}│{20,3}│{21,3}│{22,3}│{23,3}│{24,3}│{25,3}│{26,3}│", batter_header_array2);
            Console.WriteLine("├──┼───┼──────────────────────┼───╫───┼───┼───┼───┼─────┼───┼───┼───╫───┼───┼───┼───┼─────┼───┼───┼───╫───┼───┼───┼───┼───┼───┼───┼───┤");
        }

        //##jc no aps data yet, current printout is hard coded
        static public void basic_aps_display()
        {
            Console.WriteLine("ID |Player          |APS");
            for (int i = 1; i < 51; i++)
            {
                Console.WriteLine("{0,20}|{1,3}", i, "");
            }
            Console.WriteLine();
        }

        //##jc shows bp data, dosen't update based on avliable ballparks
        //##jc update should either filter out drafted parks or do color shading for drafted parks
        static public void basic_ballpark_display(List<ballpark> ballpark, List<common> common)
        {
            Console.WriteLine("┌────┬────────────────────┬───┬───┬───┬───┐");
            Console.WriteLine("│ ID │City                │1BL│1BR│HRL│HRR│");
            Console.WriteLine("├────┼────────────────────┼───┼───┼───┼───┤");
            for (int i = 0; i < ballpark.Count; i++)
            {
                common display = common.Find(delegate(common com)
                {
                    return com.player_id == ballpark[i].ballpark_id;
                });
                Console.WriteLine("│{0,4}│{1,-20}│{2,3}│{3,3}│{4,3}│{5,3}│", ballpark[i].ballpark_id, display.l_name,
                    ballpark[i].bp_single_left, ballpark[i].bp_single_right, ballpark[i].bp_homerun_left, ballpark[i].bp_homerun_right);
            }
            Console.WriteLine("└────┴────────────────────┴───┴───┴───┴───┘");
            Console.WriteLine();
            Console.WriteLine();
        }

        //##jc this currenly is hard coded
        //##jc No highlighting currently done, it should be added to both the header somehow and to the body
        static public void basic_hits()
        {
            string table_name;
            string title_color;
            Console.Clear();
            table_name = "Hits vs. Left";
            title_color = "Dark Blue";
            Console.WriteLine("Top 15 remaining hitters vs. Left, ranked by hits");
            Console.WriteLine();
            display_hitter_header(table_name, title_color);
            for (int i = 1; i <= 15; i++)
            {
                //Get the player with the i + 1 rank from SQL
                //Create a string array for display, converting to chances and rounding as approporate
                string[] player = { "000", "Hamilton, Josh*", "1", "99", "45", "60", "75", "10.00", "8", "-12", "30", "99", "45", "60", "75", "10.00", "8", "-12", "30", "", "103", "", "", "", "207", "307", "" };
                Console.Write("│{0,2}", i);
                Console.WriteLine("│{0,3}│{1,-22}│{2,3}║{3,3}│{4,3}│{5,3}│{6,3}│{7,5}│{8,3}│{9,3}│{10,3}║{11,3}│{12,3}│{13,3}│{14,3}│{15,5}│{16,3}│{17,3}│{18,3}║{19,3}│{20,3}│{21,3}│{22,3}│{23,3}│{24,3}│{25,3}│{26,3}│", player);
            }
            Console.WriteLine("└──┴───┴──────────────────────┴───┴───┴───┴───┴───┴─────┴───┴───┴───┴───┴───┴───┴───┴─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘");
            Console.WriteLine();
            table_name = "Hits vs. Right";
            title_color = "Dark Red";
            Console.WriteLine("Top 15 remaining hitters vs. Right, ranked by hits");
            Console.WriteLine();
            display_hitter_header(table_name, title_color);
            for (int i = 1; i <= 15; i++)
            {
                //Get the player with the i + 1 rank from SQL
                //Create a string array for display, converting to chances and rounding as approporate
                string[] player = { "000", "Hamilton, Josh*", "1", "99", "45", "60", "75", "10.00", "8", "-12", "30", "99", "45", "60", "75", "10.00", "8", "-12", "30", "", "103", "", "", "", "207", "307", "" };
                Console.Write("│{0,2}", i);
                Console.WriteLine("│{0,3}│{1,-22}│{2,3}║{3,3}│{4,3}│{5,3}│{6,3}│{7,5}│{8,3}│{9,3}│{10,3}║{11,3}│{12,3}│{13,3}│{14,3}│{15,5}│{16,3}│{17,3}│{18,3}║{19,3}│{20,3}│{21,3}│{22,3}│{23,3}│{24,3}│{25,3}│{26,3}│", player);
            }
            Console.WriteLine("└──┴───┴──────────────────────┴───┴───┴───┴───┴───┴─────┴───┴───┴───┴───┴───┴───┴───┴─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘");
            Console.WriteLine();
        }

        //##jc current "data" is hard coded
        //##jc algorthim to take the players and place them correctly into their roles on their team
        static public void basic_team_display(string team_name, int current_team)
        {
            Console.WriteLine("Team #{0} {1}", Convert.ToString(current_team), team_name);
            Console.WriteLine();
            Console.WriteLine("Ballpark: {0}", "Ballpark");
            Console.WriteLine();
            Console.WriteLine("Starting Pitchers");
            Console.WriteLine();
            Console.WriteLine("{0,-25} {1,-25} {2,-25} {3,-25} {4,-25} {5,-25}", "Hernandez, Felix", "Lincecum, Tim", "Vargas, Jason", "Beckett, Josh", ".", ".");
            Console.WriteLine();
            Console.WriteLine("Left Handed Relivers");
            Console.WriteLine();
            Console.WriteLine("{0,-25} {1,-25} {2,-25} {3,-25}", "Rhodes, Aruther", "Wagner, Billy", ".", ".");
            Console.WriteLine();
            Console.WriteLine("Right Handed Relivers");
            Console.WriteLine();
            Console.WriteLine("{0,-25} {1,-25} {2,-25} {3,-25} {4,-25} {5,-25}", "Papelbon, Jonathan", "Aardsma, David", "Putz, J. J.", ".", ".", ".");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("Position Players");
            Console.WriteLine();
            Console.WriteLine("    vs. Left                  vs. Right                  Bench");
            Console.WriteLine();
            Console.WriteLine(" C: {0,-25} {1,-25} {2} {3} {4} {5} {6} {7}", "Rodriguez, Ivan", "Mauer, Joe", "", "", "", "", "", "");
            Console.WriteLine("1B: {0,-25} {1,-25} {2} {3} {4} {5} {6} {7}", "", "", "", "", "", "", "", "");
            Console.WriteLine("2B: {0,-25} {1,-25} {2} {3} {4} {5} {6} {7}", "", "", "", "", "", "", "", "");
            Console.WriteLine("3B: {0,-25} {1,-25} {2} {3} {4} {5} {6} {7}", "Rodriguez, Alex", "Wright, David", "", "", "", "", "", "");
            Console.WriteLine("LF: {0,-25} {1,-25} {2} {3} {4} {5} {6} {7}", "", "", "Hamilton, Josh", "", "", "", "", "");
            Console.WriteLine("CF: {0,-25} {1,-25} {2} {3} {4} {5} {6} {7}", "Cameron, Mike", "Hamilton, Josh", "", "", "", "", "", "");
            Console.WriteLine("RF: {0,-25} {1,-25} {2} {3} {4} {5} {6} {7}", "Drew, J. D.", "Drew, J. D.", "Hamilton, Josh", "", "", "", "", "");
        }

        //Methods that change draft data
        static public void pick_player(ref List<draft> draft, int num_teams, int pick_number, int player_drafted, ref int draft_pick)
        {
            bool legal_pick = true;
            //Determine the legallity of the pick,
            //first duplication,
            //second if a design make sure it is the first ballpark
            //thrid make sure of only one ballpark
            //fourth, if round 26 make sure a ballpark has been selected
            if (legal_pick == true)
            {
                int pick_in_round = pick_number % num_teams;
                if (pick_in_round == 0)
                {
                    pick_in_round = num_teams;
                }
                int draft_round = ((pick_number - pick_in_round) / num_teams) + 1;
                int team_drafting;
                if ((draft_round % 2) == 1)
                {
                    team_drafting = pick_in_round;
                }
                else
                {
                    team_drafting = (num_teams + 1) - pick_in_round;
                }
                draft.Add(new draft
                {
                    pick_number = pick_number,
                    team = team_drafting,
                    round = draft_round,
                    player = player_drafted
                });
                draft_pick++;
            }
            else
            {
                Console.WriteLine("Somehow the pick you just made is not legal");
            }
        }
                
        //##jc not yet finished, dosen't remove old pick, gets close to adding new pick
        static public void edit_pick(ref List<draft> draft, int num_teams)
        {
            string edit_team;
            string edit_round;
            int team = 0;
            int round = 0;
            bool keep_going = true;
            Console.Write("Enter a the team to edit: ");
            edit_team = Console.ReadLine();
            try
            {
                team = Convert.ToInt32(edit_team);
                if (team < num_teams || team > 0)
                {
                }
                else
                {
                    Console.WriteLine("Error, cannot turn into a legal team");
                    keep_going = false;
                }
            }
            catch
            {
                Console.WriteLine("Error, cannot turn into a legal team");
                keep_going = false;
            }
            if (keep_going == true)
            {
                Console.Write("Enter the round to edit: ");
                edit_round = Console.ReadLine();
                try
                {
                    round = Convert.ToInt32(edit_round);
                    if (round < 26 || round > 0)
                    {
                    }
                    else
                    {
                        Console.WriteLine("Error, cannot turn into a legal round");
                        keep_going = false;
                    }
                }
                catch
                {
                    Console.WriteLine("Error, cannot turn into a legal round");
                    keep_going = false;
                }
            }
            if (keep_going == true)
            {
                int pick_number;
                int player;
                if ((round % 2) == 0)
                {
                    pick_number = (num_teams * round) - (team - 1);
                }
                else
                {
                    pick_number = num_teams * (round - 1) + team;
                }
                Console.WriteLine(pick_number);
                string edit_player = Console.ReadLine();
                try
                {
                    player = Convert.ToInt32(edit_player);
                    //vadilate the playerid is a legal draft pick
                    draft.Add(new draft
                    {
                        pick_number = pick_number,
                        team = team,
                        round = round,
                        player = player
                    });
                }
                catch
                {
                }
            }
        }






        static void Main(string[] args)
        {

            #region Load_Data

            char[] delimiter = { '\t' };

            //Load Ballpark Data

            var ballpark_listing = new List<ballpark>();
            if(System.IO.File.Exists("ballpark.txt"))
            {
                string[] raw_ballpark = System.IO.File.ReadAllLines("ballpark.txt");
                foreach (string line in raw_ballpark)
                {
                    string[] s = line.Split(delimiter);
                ballpark_listing.Add(new ballpark
                    {
                        ballpark_id = Convert.ToInt32(s[0]),
                        bp_single_left = Convert.ToInt32(s[1]),
                        bp_single_right = Convert.ToInt32(s[2]),
                        bp_homerun_left = Convert.ToInt32(s[3]),
                        bp_homerun_right = Convert.ToInt32(s[4])
                    });
                }
            }
            else
            {
                ballpark_listing.Add(new ballpark
                {
                    ballpark_id = 0,
                    bp_single_left = 0,
                    bp_single_right = 0,
                    bp_homerun_left = 0,
                    bp_homerun_right = 0
                });
            }

            //Load Hitter Data

            var hitter = new List<hitter>();
            if(System.IO.File.Exists("hitter.txt"))
            {
                string[] raw_hitter = System.IO.File.ReadAllLines("hitter.txt");
                foreach (string line in raw_hitter)
                {

                    string[] s = line.Split(delimiter);
                    int? s22 = null;
                    if (s[22] != "NULL")
                    {
                        s22 = Convert.ToInt32(s[22]);
                    }
                    else
                    {
                        s22 = null;
                    }
                    int? s23 = null;
                    if (s[23] != "NULL")
                    {
                        s23 = Convert.ToInt32(s[23]);
                    }
                    else
                    {
                        s23 = null;
                    }
                    int? s24 = null;
                    if (s[24] != "NULL")
                    {
                        s24 = Convert.ToInt32(s[24]);
                    }
                    else
                    {
                        s24 = null;
                    }
                    int? s25 = null;
                    if (s[25] != "NULL")
                    {
                        s25 = Convert.ToInt32(s[25]);
                    }
                    else
                    {
                        s25 = null;
                    }
                    int? s26 = null;
                    if (s[26] != "NULL")
                    {
                        s26 = Convert.ToInt32(s[26]);
                    }
                    else
                    {
                        s26 = null;
                    }
                    int? s27 = null;
                    if (s[27] != "NULL")
                    {
                        s27 = Convert.ToInt32(s[27]);
                    }
                    else
                    {
                        s27 = null;
                    }
                    int? s28 = null;
                    if (s[28] != "NULL")
                    {
                        s28 = Convert.ToInt32(s[28]);
                    }
                    else
                    {
                        s28 = null;
                    }
                    int? s29 = null;
                    if (s[29] != "NULL")
                    {
                        s29 = Convert.ToInt32(s[29]);
                    }
                    else
                    {
                        s29 = null;
                    }
                    int? s30 = null;
                    if (s[30] != "NULL")
                    {
                        s30 = Convert.ToInt32(s[30]);
                    }
                    else
                    {
                        s30 = null;
                    }
                    int? s31 = null;
                    if (s[31] != "NULL")
                    {
                        s31 = Convert.ToInt32(s[31]);
                    }
                    else
                    {
                        s31 = null;
                    }
                    int? s32 = null;
                    if (s[32] != "NULL")
                    {
                        s32 = Convert.ToInt32(s[32]);
                    }
                    else
                    {
                        s32 = null;
                    }
                    int? s33 = null;
                    if (s[33] != "NULL")
                    {
                        s33 = Convert.ToInt32(s[33]);
                    }
                    else
                    {
                        s33 = null;
                    }
                    int? s34 = null;
                    if (s[34] != "NULL")
                    {
                        s34 = Convert.ToInt32(s[34]);
                    }
                    else
                    {
                        s34 = null;
                    }
                    int? s35 = null;
                    if (s[35] != "NULL")
                    {
                        s35 = Convert.ToInt32(s[35]);
                    }
                    else
                    {
                        s35 = null;
                    }
                    int? s36 = null;
                    if (s[36] != "NULL")
                    {
                        s36 = Convert.ToInt32(s[36]);
                    }
                    else
                    {
                        s36 = null;
                    }
                    int? s37 = null;
                    if (s[37] != "NULL")
                    {
                        s37 = Convert.ToInt32(s[37]);
                    }
                    else
                    {
                        s37 = null;
                    }
                    int? s38 = null;
                    if (s[38] != "NULL")
                    {
                        s38 = Convert.ToInt32(s[38]);
                    }
                    else
                    {
                        s38 = null;
                    }
                    int? s39 = null;
                    if (s[39] != "NULL")
                    {
                        s39 = Convert.ToInt32(s[39]);
                    }
                    else
                    {
                        s39 = null;
                    }
                    int? s40 = null;
                    if (s[40] != "NULL")
                    {
                        s40 = Convert.ToInt32(s[40]);
                    }
                    else
                    {
                        s40 = null;
                    }
                    int? s41 = null;
                    if (s[41] != "NULL")
                    {
                        s41 = Convert.ToInt32(s[41]);
                    }
                    else
                    {
                        s41 = null;
                    }
                    hitter.Add(new hitter
                    {
                        hitter_id = Convert.ToInt32(s[0]),
                        steal = s[1],
                        run = Convert.ToInt32(s[2]),
                        bats = Convert.ToChar(s[3]),
                        bunt = Convert.ToChar(s[4]),
                        h_r = Convert.ToChar(s[5]),
                        power_l = Convert.ToBoolean(s[6]),
                        power_r = Convert.ToBoolean(s[7]),
                        steal_asterisk = Convert.ToBoolean(s[8]),
                        steal_front = Convert.ToInt32(s[9]),
                        steal_back = Convert.ToInt32(s[10]),
                        lead_02 = Convert.ToChar(s[11]),
                        lead_03 = Convert.ToChar(s[12]),
                        lead_04 = Convert.ToChar(s[13]),
                        lead_05 = Convert.ToChar(s[14]),
                        lead_06 = Convert.ToChar(s[15]),
                        lead_07 = Convert.ToChar(s[16]),
                        lead_08 = Convert.ToChar(s[17]),
                        lead_09 = Convert.ToChar(s[18]),
                        lead_10 = Convert.ToChar(s[19]),
                        lead_11 = Convert.ToChar(s[20]),
                        lead_12 = Convert.ToChar(s[21]),
                        c_range = s22,
                        c_error = s23,
                        _1b_range = s24,
                        _1b_error = s25,
                        _2b_range = s26,
                        _2b_error = s27,
                        _3b_range = s28,
                        _3b_error = s29,
                        ss_range = s30,
                        ss_error = s31,
                        lf_range = s32,
                        lf_error = s33,
                        cf_range = s34,
                        cf_error = s35,
                        rf_range = s36,
                        rf_error = s37,
                        of_arm = s38,
                        c_arm = s39,
                        c_pb = s40,
                        c_T_rat = s41,
                        defense_string = s[42]
                    });
                }
                
            }
            else
            {
                hitter.Add(new hitter
                {
                    hitter_id = 0,
                    steal = "A",
                    run = 12,
                    bats = Convert.ToChar("R"),
                    bunt = Convert.ToChar("B"),
                    h_r = Convert.ToChar("B"),
                    power_l = Convert.ToBoolean(0),
                    power_r = Convert.ToBoolean(1),
                    steal_asterisk = Convert.ToBoolean(0),
                    steal_front = 13,
                    steal_back = 8,
                    lead_02 = Convert.ToChar(1),
                    lead_03 = Convert.ToChar(1),
                    lead_04 = Convert.ToChar(1),
                    lead_05 = Convert.ToChar(1),
                    lead_06 = Convert.ToChar(1),
                    lead_07 = Convert.ToChar(1),
                    lead_08 = Convert.ToChar(1),
                    lead_09 = Convert.ToChar(1),
                    lead_10 = Convert.ToChar(1),
                    lead_11 = Convert.ToChar(1),
                    lead_12 = Convert.ToChar(1),
                    c_range = 5,
                    c_error = 16,
                    _1b_range = 5,
                    _1b_error = 30,
                    _2b_range = 5,
                    _2b_error = 71,
                    _3b_range = 5,
                    _3b_error = 65,
                    ss_range = 5,
                    ss_error = 88,
                    lf_range = 5,
                    lf_error = 25,
                    cf_range = 5,
                    cf_error = 22,
                    rf_range = 5,
                    rf_error = 25,
                    of_arm = 5,
                    c_arm = 5,
                    c_pb = 20,
                    c_T_rat = 20,
                    defense_string = "I Don't Wanna Play"
                });
            }
            var pitcher = new List<pitcher>();
            if (System.IO.File.Exists("pitcher.txt"))
            {
                string[] raw_pitcher = System.IO.File.ReadAllLines("pitcher.txt");
                foreach (string line in raw_pitcher)
                {
                    int? s2 = null;
                    int? s3 = null;
                    int? s4 = null;
                    string[] s = line.Split(delimiter);
                    if (s[2] != "NULL")
                    {
                        s2 = Convert.ToInt32(s[2]);
                    }
                    else
                    {
                        s2 = null;
                    }
                    if (s[3] != "NULL")
                    {
                        s3 = Convert.ToInt32(s[3]);
                    }
                    else
                    {
                        s3 = null;
                    }
                    if (s[4] != "NULL")
                    {
                        s4 = Convert.ToInt32(s[4]);
                    }
                    else
                    {
                        s4 = null;
                    }
                    pitcher.Add(new pitcher
                    {
                        pitcher_id = Convert.ToInt32(s[0]),
                        pitches = Convert.ToChar(s[1]),
                        start_end = s2,
                        relief_end = s3,
                        closer = s4,
                        hold = Convert.ToInt32(s[5]),
                        range = Convert.ToInt32(s[6]),
                        error = Convert.ToInt32(s[7]),
                        balk = Convert.ToInt32(s[8]),
                        wild_pitch = Convert.ToInt32(s[9]),
                        hitting_card = Convert.ToInt32(s[10]),
                        steal = s[11],
                        run = Convert.ToInt32(s[12]),
                        bats = Convert.ToChar(s[13]),
                        bunt = Convert.ToChar(s[14]),
                        h_r = Convert.ToChar(s[15]),
                        power_l = Convert.ToBoolean(s[16]),
                        power_r = Convert.ToBoolean(s[17]),
                        steal_asterisk = Convert.ToBoolean(s[18]),
                        steal_front = Convert.ToInt32(s[19]),
                        steal_back = Convert.ToInt32(s[20]),
                        lead_02 = Convert.ToChar(s[21]),
                        lead_03 = Convert.ToChar(s[22]),
                        lead_04 = Convert.ToChar(s[23]),
                        lead_05 = Convert.ToChar(s[24]),
                        lead_06 = Convert.ToChar(s[25]),
                        lead_07 = Convert.ToChar(s[26]),
                        lead_08 = Convert.ToChar(s[27]),
                        lead_09 = Convert.ToChar(s[28]),
                        lead_10 = Convert.ToChar(s[29]),
                        lead_11 = Convert.ToChar(s[30]),
                        lead_12 = Convert.ToChar(s[31])
                    });
                }
            }
            else
            {
                pitcher.Add(new pitcher
                {
                    pitcher_id = 0,
                    pitches = Convert.ToChar("L"),
                    start_end = 6,
                    relief_end = 3,
                    closer = 0,
                    hold = 0,
                    range = 1,
                    error = 0,
                    balk = 0,
                    wild_pitch = 0,
                    hitting_card = 1,
                    steal = "E",
                    run = 10,
                    bats = Convert.ToChar("L"),
                    bunt = Convert.ToChar("A"),
                    h_r = Convert.ToChar("C"),
                    power_l = Convert.ToBoolean(0),
                    power_r = Convert.ToBoolean(0),
                    steal_asterisk = Convert.ToBoolean(0),
                    steal_front = 3,
                    steal_back = 1,
                    lead_02 = Convert.ToChar(0),
                    lead_03 = Convert.ToChar(0),
                    lead_04 = Convert.ToChar(0),
                    lead_05 = Convert.ToChar(0),
                    lead_06 = Convert.ToChar(0),
                    lead_07 = Convert.ToChar(0),
                    lead_08 = Convert.ToChar(0),
                    lead_09 = Convert.ToChar(0),
                    lead_10 = Convert.ToChar(0),
                    lead_11 = Convert.ToChar(0),
                    lead_12 = Convert.ToChar(0)
                });
            }

            var common = new List<common>();
            if (System.IO.File.Exists("common.txt"))
            {
                string[] raw_common = System.IO.File.ReadAllLines("common.txt");
                foreach (string line in raw_common)
                {
                    string[] s = line.Split(delimiter);
                    common.Add(new common
                    {
                        player_id = Convert.ToInt32(s[0]),
                        team = s[1],
                        type = Convert.ToChar(s[2]),
                        f_name = s[3],
                        l_name = s[4]
                    });
                }
            }
            else
            {
                common.Add(new common
                {
                    player_id = 0,
                    team = "NON",
                    type = Convert.ToChar(0),
                    f_name = "First",
                    l_name = "Last"
                });
            }

            #endregion

            #region Set up Draft
            //defined and default variables
            int num_teams;
            string[] team_names = { "", "", "", "", "", "", "", "", "", "", "", "", "", "" };
            int my_team = 0;
            string[] team_display = { "", "", "", "", "", "", "", "", "", "", "", "", "", "" };

            default_color();
            Console.Clear();
            introduction();
            set_number_of_teams(out num_teams);
            set_team_names(num_teams, ref team_names);
            set_drafters_own_team(out my_team, num_teams);
            set_display_names(ref team_display, team_names, num_teams);
            #endregion

            #region during draft

            string draft_selection;
            bool draft_live = true;
            string end_key = "";
            int draft_pick = 1;
            int player_pick_number = 0;

            var current_draft = new List<draft>();

            while (draft_live == true)
            {
                //Display draft by round, currently
                display_current_draft(current_draft, common, num_teams, team_display);
                Console.Write("Make a selection: ");
                draft_selection = Console.ReadLine();

                try //if the selection is a number make the pick
                {
                    player_pick_number = Convert.ToInt32(draft_selection);
                    pick_player(ref current_draft, num_teams, draft_pick, player_pick_number, ref draft_pick);
                }
                catch //if the selection is not a number use the decision to show some info
                {
                    switch (draft_selection.ToLower())
                    {
                        //list of all teams by position
                        case "a":
                            position_display(num_teams);
                            break;

                        //list of the next 50 undrafted players according to the APS
                        case "aps":
                            basic_aps_display();
                            break;

                        //display the current draft by round
                        case "d":
                            display_current_draft(current_draft, common, num_teams, team_display);
                            break;

                        //edit a previous draft pick, no checking is made for a future pick
                        //choosing a future pick may cause unexpected results.
                        case "e":
                            edit_pick(ref current_draft, num_teams);
                            break;

                        //listing of top remaining hitters by hit chances, showing top 15 vs left and right
                        case "h":
                            //formatting of basic hits() is WAY, repeat WAY off, needs to be fixed, but is basis for all other stat type displays, esp for hitters
                            basic_hits();
                            break;

                        ////listing of top remaining hitters by hit chances, showing top 25 vs left
                        //case "hl":
                        //    break;

                        ////listing of top remaining hitters by hit chances, showing top 25 vs right
                        //case "hr":
                        //    break;

                        ////listing of top remaining hitters by hits in the clutch
                        //case "hc":
                        //    break;

                        ////show information for the number of players specified, this call is for hitters
                        //case "ih":
                        //    break;

                        ////show information for the number of players specified, this call is for pitchers
                        //case "ip":
                        //    break;

                        ////listing of the remaining catchers
                        //case "p2":
                        //    break;

                        ////listing of the remaining firstbasemen
                        //case "p3":
                        //    break;

                        ////listing of the remaining secondbasemen
                        //case "p4":
                        //    break;

                        ////listing of the remaining thridbasemen
                        //case "p5":
                        //    break;

                        ////listing of the remaining shortstops
                        //case "p6":
                        //    break;

                        ////listing of the remaining leftfielders
                        //case "p7":
                        //    break;

                        ////listing of the remaining centerfielders
                        //case "p8":
                        //    break;

                        ////listing of the remaining rightfielders
                        //case "p9":
                        //    break;

                        ////listing of top remaining hitters by on base
                        //case "o":
                        //    break;

                        ////listing of top remaining hitters by total bases, s for slugging
                        //case "s":
                        //    break;

                        //listing of the drafting person's team
                        //##jc currently hard coded with random players
                        case "t":
                            basic_team_display(team_display[my_team - 1], my_team);
                            break;

                        //listing of all  ballparks
                        //##jc future possibility of only displaying only ballparks that are legal to draft
                        case "bp":
                            basic_ballpark_display(ballpark_listing, common);
                            break;

                        //listing of the possible selections that are currently included
                        case "help":
                            help();
                            break;

                        //so as not to cause unknown issues if no command is given
                        case "":
                            Console.WriteLine("No Selection made, try again.");
                            break;

                        //used to end draft
                        case "end":
                            Console.Write("Confirm end draft (Y/N): ");
                            end_key = Console.ReadLine();
                            switch (end_key.ToLower())
                            {
                                case "y":
                                    Console.WriteLine("END DRAFT");
                                    draft_live = false;
                                    break;
                                default:
                                    Console.WriteLine("Draft not ended");
                                    break;
                            }
                            break;

                        //##jc The default will eventually parse the undrafted players for a possible match,
                        //##jc if only one exists it should draft the player, else it should display the list of matches to allow for quick drafting of the player.
                        default:
                            Console.WriteLine("Search the eligible player list for possible matches");
                            break;
                    }
                }
            }

            #endregion
            Console.ReadKey();
        }
    }
}